Achieving time synchronization in computer networking environments is a challenging task. Different elements in a network, such as PCs/workstations/servers, routers/switches, and even VoIP phones, use NTP (Network Time Protocol), to get their epoch time for synchronization purposes. The accuracy of NTP time is in the order of tens of milliseconds. In many cases this is sufficient. In process automation, however, requirements are more rigid, and the requirement for time synchronization between networked devices is in the order of sub-microsecond accuracy.
This accuracy could be accomplished using the GPS system but the availability of the GPS signal is not assured at all locations due to the requirement of an antenna with a clear sight of the sky (to approximately 50 nsec.). In network performance measurement applications, where the one-way packet delay is measured, the accuracy has to be in the order of sub-milliseconds. Thus, deploying GPS at certain points of a network to perform network measurement is feasible except that, as discussed above, GPS signals are not available at all locations of the network.
In recent years the process automation industry has started deploying the IEEE 1588 standard to perform time synchronization between various devices. IEEE 1588 in its current form is limited to a very small network, typically a LAN segment. In order for IEEE 1588 to be deployed across wide area networks, significant investment in the network elements is required. For process automation there are a few companies that specialize in making switches that avoid delay in propagating the IEEE 1588 synchronization messages. However other manufactures, specifically router manufactures, find it economically difficult to deploy some of the solutions the IEEE 1588 standard proposes for dealing with queuing delays within the network elements.
There are two methods in IEEE 1588 to avoid delays at the network switching routing elements. One method is to use a boundary clock and another is to utilize high priority messages. Using the boundary clock, some of the messages carry timestamps i.e., the epoch time of the devices that are trying to synchronize their clocks. This protocol works well if the communication between such devices is symmetrical with respect to delay.
A problem arises when the path becomes asymmetrical, as when switching/routing network elements add unpredictable delays. Under such a system, the sending device (device A) is a master clock and will synchronize device B's (receiver device) clock. To avoid queuing at the switch/router, the IEEE 1588 messages have to be diverted at the MAC/PHY layer. The boundary clock first synchronizes with the device A clock as a slave, and then device A clock becomes the master clock to device B, which will then synchronize it's clock to the boundary clock. This solution requires modification of the MAC/PHY chip as well as requiring a single clock to manage all possible ports. This could be done with some effort on a switch/router with bus architecture. However, doing this on a switch/router with crossbar architecture is, at best, challenging. Therefore for the foreseeable future it is doubtful if such changes will be implemented in the switching network because of complexity and cost. However, in situations, such as process automation where the cost of the switches is much higher (and the consumer's economic return is higher) than it is for the Internet, there may be freedom to implement these schemes, but in data networks synchronizing clocks remains a problem.